/*
 * FileName: EnumSingleton.java
 * Author:   zzw
 * Date:     2018年06月23日
 * Description: 枚举单例
 */
package com.zzw.design.singleton;

/**
 * 〈枚举单例〉<br>
 * 〈〉
 *
 * @author zzw
 * @see [相关类/方法]（可选）
 * @since [产品/模块版本]（可选）
 */
public class EnumSingleton {

    // 私有构造函数
    private EnumSingleton() {

    }

    public static EnumSingleton getInstance() {
        return Singleton.INSTANCE.getInstance();
    }

    private enum Singleton {
        INSTANCE;

        private EnumSingleton singleton;

        // JVM保证这个方法绝对只调用一次
        Singleton() {
            singleton = new EnumSingleton();
        }

        public EnumSingleton getInstance() {
            return singleton;
        }
    }
}
